"""
对文件进行重命名
"""
import os
import shutil


def rename_and_copy_files(input_directory, output_directory):
  """
  遍历输入目录中的所有文件并根据规则重命名文件，保存到输出目录中。

  参数:
  input_directory (str): 包含原始视频文件的根目录。
  output_directory (str): 保存重命名后视频文件的根目录。
  """
  # 定义替换规则
  replace_dict = {
    '监控点1': '1',
    '监控点2': '2',
    '主峰第三平台': 'ThirdPlatform',
    '主峰第二平台': 'SecondPlatform',
    '主峰第一平台': 'FirstPlatform',
    '主峰洼地': 'depression',
    '余家坪': 'Yujiaping',
    '主峰大石头': 'BigStone'
  }

  # 遍历所有子文件夹和文件
  for root, dirs, files in os.walk(input_directory):
    for filename in files:
      # 仅处理视频文件
      if filename.endswith(('.mp4', '.avi', '.mov', '.mkv')):
        # 构建文件的完整路径
        old_path = os.path.join(root, filename)

        # 对文件名进行替换
        new_filename = filename
        for key, value in replace_dict.items():
          new_filename = new_filename.replace(key, value)

        # 构建新的文件路径，保持与原始结构一致
        relative_path = os.path.relpath(root, input_directory)
        new_folder_path = os.path.join(output_directory, relative_path)
        os.makedirs(new_folder_path, exist_ok=True)
        new_path = os.path.join(new_folder_path, new_filename)

        # 复制并重命名文件
        shutil.copy2(old_path, new_path)
        print(f"Copied and renamed: {old_path} -> {new_path}")


# 设置输入和输出目录路径
input_directory = r'D:\file\postgrad\experiment\video_2\video'  # 原始视频文件的根目录
output_directory = r'D:\file\postgrad\experiment\video_2\rename_video'  # 保存重命名后视频文件的根目录

# 调用函数
rename_and_copy_files(input_directory, output_directory)

